<?php
/**
 * ユーティリティクラス
 * @package Apm
 * @author 
 * @since 2010/11/15
 */
class Apm_ShopUtil{
	
	/**
	 * 旧店舗コード取得
	 * @param 店舗コード
	 * @return 旧店舗コード
	 */
	public function getOldTenpoCd($tenpoCd)
	{
		$oldTenpoCd = '';
		
		// 旧店舗コード
		if (strlen($tenpoCd) == 8)
		{
			$oldTenpoCd = '5' . substr($tenpoCd, 0, 2) . substr($tenpoCd, -5, 5) . '00';
		}
		
		return $oldTenpoCd;
	}

	/**
	 * 沿線区分名称取得
	 * @param 沿線区分
	 * @return 沿線区分名称
	 */
	public function getEnsenKbnName($ensenKbn)
	{
		$ensenKbnName = '';
		
        switch ($ensenKbn)
        {
			case Apm_Config_Shop::ENSEN_KUBUN_JR :
				$ensenKbnName = Apm_Config_Shop::ENSEN_KUBUN_NAME_JR;
				break;
			case Apm_Config_Shop::ENSEN_KUBUN_PRIVATE_RAILWAY :
				$ensenKbnName = Apm_Config_Shop::ENSEN_KUBUN_NAME_PRIVATE_RAILWAY;
				break;
			case Apm_Config_Shop::ENSEN_KUBUN_SUBWAY :
				$ensenKbnName = Apm_Config_Shop::ENSEN_KUBUN_NAME_SUBWAY;
				break;
			case Apm_Config_Shop::ENSEN_KUBUN_OTHER :
				$ensenKbnName = Apm_Config_Shop::ENSEN_KUBUN_NAME_OTHER;
				break;
			case Apm_Config_Shop::ENSEN_KUBUN_BUS :
				$ensenKbnName = Apm_Config_Shop::ENSEN_KUBUN_NAME_BUS;
				break;
			case Apm_Config_Shop::ENSEN_KUBUN_OTHER_TRANSPORTATION :
				$ensenKbnName = Apm_Config_Shop::ENSEN_KUBUN_NAME_OTHER_TRANSPORTATION;
				break;
        }
        
        return $ensenKbnName;
	}

	
	/**
	 * 電話番号情報の取得
	 * @param $rsData レコードセット（無料電話番号カラムあり）
	 * @param $接続番号No
	 * @return 電話情報
	 */
	public function getCallingData($rsData, $subNo="")
	{
		// 無料電話が使用可能か
		$isFree = Apm_Bukkenitems::isWebCalling($rsData);
		$connectionNo = "";
		if (!empty($subNo)) {
			// 接続番号が指定されている場合、取得する
			$connectionNo = Apm_ShopUtil::getFreeCallingNo($rsData, $subNo);
		}
		
		$callData = array();
		if ($isFree && (empty($subNo) || !empty($connectionNo))) {
			// 無料番号
			$callData['IS_FREE_CALL'] = true;							// CALLNOTE(Webcaling)フラグ
			$callData['TEL_01'] = Apm_Config_Shop::FREE_CALLING_NO;		// 無料電話番号
			$callData['TEL_02'] = $rsData['M05_TENPO_TEL01'];			// 通常電話番号
			$callData['hasFreeTel'] = true;								// 無料フラグ
			$callData['CONNECTION_NO'] = trim($connectionNo);			// 接続番号
			
		} else {
			// 通常番号
			$callData['IS_FREE_CALL'] = false;
			$callData['TEL_01'] = '';
			$callData['TEL_02'] = '';
			$callData['CONNECTION_NO'] = '';
			
			$tel01 = $rsData['M05_TENPO_TEL01'];	// 無料番号
			$tel02 = $rsData['M05_TENPO_TEL02'];	// 通常番号
			
			// 無料番号に値がある場合
			if (!empty($tel01)) {
				// 0120から始まるか
				if (substr($tel01, 0, 4) == '0120') {
					// 無料
					$callData['TEL_01'] = $tel01;
				} else {
					// 有料
					$callData['TEL_02'] = $tel01;
				}
			}
			// 通常番号に値がある場合
			if (!empty($tel02)) {
				// 0120から始まるか
				if (empty($callData['TEL_01']) && substr($tel02, 0, 4) == '0120') {
					// 無料
					$callData['TEL_01'] = $tel02;
				} elseif (empty($callData['TEL_02']) && substr($tel02, 0, 4) != '0120') {
					// 有料
					$callData['TEL_02'] = $tel02;
				}
			}
			
			// TEL_01 に値がある場合、無料表示
			if (!empty($callData['TEL_01'])) {
				$callData['hasFreeTel'] = true;
				if (empty($callData['TEL_02'])) $callData['TEL_02'] = '-';
			} else {
				$callData['hasFreeTel'] = false;
				$callData['TEL_01'] = $callData['TEL_02'];
				if (empty($callData['TEL_01'])) $callData['TEL_01'] = '-';
				$callData['TEL_02'] = '-';
			}
		}
		
		return $callData;
	}

	/**
	 * 無料電話番号・接続番号の取得
	 * @param $rsData レコードセット（無料電話番号カラムあり）
	 * @param $接続番号No
	 * @return 接続番号
	 */
	public function getFreeCallingNo($rsData, $subNo)
	{
		// 制御フラグ・カラム名
		$controlCol = 'M93_CONTROL_FLAG'.$subNo;
		if ($rsData[$controlCol] == '0') {
			$connectionCol = 'M93_CONNECTION_NO'.$subNo;
			return $rsData[$connectionCol];
		}
		return '';
	}

	public function getTenpoLineId($tenpoCd)
	{
		// 店舗CDが有効か
		if (is_null($tenpoCd) || count($tenpoCd) == 0) return '';
		// 店舗LINE ID検索
		$sql  = '';
		$sql .= "SELECT M05_TENPO_LINE_ID";
		$sql .= "  FROM M05TENPO_LINE";
		$sql .= " WHERE M05_TENPO_CD = :tenpo_cd";
		$sql .= "   AND M05_DELETE_FLAG = '0'";
		$db_params = array('tenpo_cd' => $tenpoCd);
		$result = Apm_Util::dbGetData($sql, $db_params);
		// 結果
		$tenpoLineId = '';
		if (!empty($result)) {
			$tenpoLineId = $result['M05_TENPO_LINE_ID'];
		}
		return $tenpoLineId;
	}

	/**
	 * 交通機関文字列取得
	 *
	 * @param array  $rsData 店舗情報レコードセットの連想配列
	 * @return string 交通機関文字列
	 */
	public static function GetTrafficStr($rsData)
	{
		$strWork = "";
		$strTrainNm   = $rsData["M03_ENSEN_NAME"];
		$strStationNm = $rsData["M03_EKI_NAME"];
		$strStationCd = $rsData["M05_ENSEN_CD01"];
		$strToho      = $rsData["M05_TOHO01"];
		$strBiko      = $rsData["M05_KOUTSUU_BIKOU01"];

		// 駅名称が設定されている場合
		if (($strStationNm != "") && ($strStationNm != "＊＊＊＊") && ($strStationNm != "＊＊＊"))
		{
			$arrWork = array();
			$strUrl  = '';
			
			// 沿線名＋駅名
			$arrWork[] = $strTrainNm . '&nbsp;' . $strStationNm . '駅';
			
			//徒歩分＞０であった場合
			if (intval($strToho) > 0) {
				$arrWork[] = '徒歩' . $strToho . '分';
			}
			
			// 備考が設定されている場合
			if ($strBiko != "") {
				$arrWork[] = $strBiko;
			}
			
			// 連結
			$strWork = implode('/', $arrWork);
		}
		// 沿線がバスであった場合
		elseif (
				   $strStationCd=="3500" || $strStationCd=="3501" || $strStationCd=="3502" || $strStationCd=="3503"
				|| $strStationCd=="3504" || $strStationCd=="3505" || $strStationCd=="3506" || $strStationCd=="3507"
				|| $strStationCd=="3508" || $strStationCd=="3509" || $strStationCd=="3510" || $strStationCd=="3511"
			)
		{
			$strWork = 'バス';
			
			// 備考が設定されている場合
			if ($strBiko != "") {
				$strWork .= '/' . $strBiko;
			}
			
			//徒歩分＞０であった場合
			if (intval($strToho) > 0) {
				$strWork .= '/徒歩' . $strToho . '分';
			}
		}
		//上記以外であった場合
		else{
			// 備考が設定されている場合
			if ($strBiko != "") {
				$strWork = $strBiko;
			} else {
				$strWork = "－";
			}
		}

		return $strWork;
	}

}
?>